﻿##########
# Horse World Online by TomR
# Special thanks to InternetJanitor, I stole most of this code from him
#
# Hold down the A key (Z on the keyboard) for one screen refresh
# to breed a horse
##########

: title1
0x00 0x00 0x00 0x00 0x00 0xE1 0xC0 0x00
0x49 0x9C 0x7B 0x80 0x00 0xB1 0x60 0x00 
0x4A 0x52 0x82 0x00 0x00 0xC9 0x30 0x00
0x7A 0x52 0x73 0x00 0x00 0x65 0x38 0x00 
0x4A 0x5C 0x0A 0x00 0x00 0x3F 0x94 0x00
0x49 0x92 0xF3 0x80 0x00 0x30 0x96 0x00 
0x00 0x00 0x00 0x00 0x00 0x40 0x15 0xC0
0x44 0xCE 0x47 0x00 0x00 0x80 0x04 0x38 
0x45 0x29 0x44 0x80 0x00 0x80 0x04 0x04
0x55 0x29 0x44 0x80 0x01 0x00 0x04 0x02 
0x29 0x2E 0x44 0x80 0x02 0x00 0x00 0x01
0x28 0xC9 0x77 0x00 0x02 0x1C 0x00 0x00 
0x00 0x00 0x00 0x00 0x04 0x24 0x00 0x00
0x32 0x51 0xD2 0xE0 0x08 0x24 0x00 0x00 
0x4A 0x50 0x92 0x80 0x08 0x18 0x01 0x00
0x4B 0x50 0x9A 0xC0 0x10 0x00 0x01 0x00 
0x4A 0xD0 0x96 0x80 0x20 0x00 0x01 0x00
0x32 0x5D 0xD2 0xE0 0x40 0x00 0x01 0x00 
0x00 0x00 0x00 0x00 0x80 0x20 0x02 0x00
0x00 0x00 0x00 0x01 0x00 0x20 0x02 0x00 
0x00 0x00 0x00 0x06 0x00 0x10 0x04 0x00
0x00 0x00 0x00 0x08 0x00 0x0C 0x08 0x00 
0x00 0x00 0x00 0x0B 0x00 0x03 0xF0 0x00
0x00 0x00 0x00 0x11 0x00 0x00 0x90 0x00 
0x00 0x00 0x00 0x15 0x00 0x01 0x08 0x00
0x00 0x00 0x00 0x12 0x00 0x0E 0x08 0x00 
0x00 0x00 0x00 0x08 0x19 0xF0 0x04 0x00
0x00 0x00 0x00 0x08 0x22 0x00 0x04 0x00 
0x00 0x00 0x00 0x04 0x42 0x00 0x04 0x00
0x00 0x00 0x00 0x03 0x84 0x00 0x04 0x00 
0x00 0x00 0x00 0x00 0x78 0x00 0x02 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00

: title2
0x00 0x00 0x00 0x00 0x00 0xE1 0xC0 0x00
0x49 0x9C 0x7B 0x80 0x00 0xB1 0x60 0x00 
0x4A 0x52 0x82 0x00 0x00 0xC9 0x30 0x00
0x7A 0x52 0x73 0x00 0x00 0x65 0x38 0x00 
0x4A 0x5C 0x0A 0x00 0x00 0x3F 0x94 0x00
0x49 0x92 0xF3 0x80 0x00 0x30 0x96 0x00 
0x00 0x00 0x00 0x00 0x00 0x40 0x15 0xC0
0x44 0xCE 0x47 0x00 0x00 0x80 0x04 0x38 
0x45 0x29 0x44 0x80 0x00 0x8C 0x04 0x04
0x55 0x29 0x44 0x80 0x01 0x02 0x04 0x02 
0x29 0x2E 0x44 0x80 0x02 0x01 0x00 0x01
0x28 0xC9 0x77 0x00 0x02 0x1C 0x00 0x00 
0x00 0x00 0x00 0x00 0x04 0x24 0x00 0x00
0x32 0x51 0xD2 0xE0 0x08 0x24 0x00 0x00 
0x4A 0x50 0x92 0x80 0x08 0x18 0x01 0x00
0x4B 0x50 0x9A 0xC0 0x10 0x00 0x01 0x00 
0x4A 0xD0 0x96 0x80 0x20 0x00 0x01 0x00
0x32 0x5D 0xD2 0xE0 0x40 0x00 0x01 0x00 
0x00 0x00 0x00 0x00 0x80 0x20 0x02 0x00
0x44 0xC9 0x00 0x01 0x00 0x20 0x02 0x00 
0x45 0x29 0x00 0x06 0x00 0x10 0x04 0x00
0x55 0x26 0x00 0x08 0x00 0x0C 0x08 0x00 
0x29 0xE2 0x00 0x0B 0x00 0x03 0xF0 0x00
0x29 0x24 0x00 0x11 0x00 0x00 0x90 0x00 
0x00 0x00 0x00 0x15 0x00 0x01 0x08 0x00
0x7C 0xC3 0x99 0x12 0x00 0x0E 0x08 0x00 
0x11 0x24 0x25 0x08 0x19 0xF0 0x04 0x00
0x11 0x25 0xA5 0x08 0x21 0x00 0x04 0x00 
0x11 0x24 0xA4 0x04 0x49 0x00 0x04 0x00
0x10 0xC3 0x19 0x03 0x92 0x00 0x04 0x00 
0x00 0x00 0x00 0x00 0x1C 0x00 0x02 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00

: draw-bitmap
	clear
	v0 := 0 # x
	v1 := 0 # y
	v2 := 0 # byte
	v3 := 1 # constant
	loop
		sprite v0 v1 1
		i  += v3
		v2 += 1
		v0 += 8
		if v0 == 64 then v1 += 1
		if v0 == 64 then v0 := 0
		if v1 != 32 then
	again
;

: horse
	0b01000000
	0b11100000
	0b00111110
	0b00111101
	0b00100100
;

: horse2
	0b00000010
	0b00000111
	0b01111100
	0b10111100
	0b00100100
;	

: horse3
	0b00000010
	0b01000111
	0b10111100
	0b00111100
	0b00100100
;

: horse4
	0b00000000
	0b01000000
	0b11100000
	0b00111110
	0b11111101
;

: drawhorse
	v8 := random 0xFF
	i := horse
	if v8 > 200 then i := horse2
	if v8 > 225 then i := horse3
	if v8 > 250 then i := horse4
	sprite v0 v1 5
;

: body
	v6 := 10
	loop
		if v0 > 54 then v1 += 6
		if v1 > 30 then v1 := 2
		if v0 > 54 then v0 := 5
		v3 := random 0xFF
		if v3 > 128 then drawhorse
		#if vf != 0 then v6 += -1
		#if vf != 0 then drawhorse
		vf := 0
		if v3 > 128 then v6 += 1
		v0 += 9
		if v6 == v5 then return
	again
;

: wait
	ve := 32
	delay := ve
	loop
		ve := delay
		if ve != 0 then
	again
;

: main
	v7 := 13
	loop
		i := title1
		draw-bitmap
		wait
		wait
		i := horse
		clear
		v0 := 5
		v1 := 2
		v5 := 12
		loop
			v4 := 0x0A if v4 key then v5 += 1
			wait
			clear
			body
			if v5 != v7 then
		again
		v7 += 4
		if v7 == 0x29 then v7 := 13 
		i := title2
		wait
		wait
		draw-bitmap
		wait
		wait
	again
;